/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package src.j2ee.compumake.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import src.j2ee.compumake.dominio.TipoUnidadOptica;

/************************************************************************
 **                                                                    **
 ** Nombre: DAOTipoUnidad.java                                         **
 ** Version: v1.0.0                                                    **
 ** Autor: amado.cante                                                 **
 ** Creado: 25/04/2013                                                 **
 ** Modificado:                                                        **
 ** Diagrama:                                                          **
 ** Caso de uso:                                                       **
 **                                                                    **
 ***********************************************************************/
public class DAOTipoUnidad {
    private static final String TABLA_TIPO_UNIDAD = "TipoUnidad";
    private static final String COLUMNA_ID_TIPO = "idTipoUnidad";
    private static final String COLUMNA_UNIDAD = "unidad";
    private Connection conexion;
    private AccesoBaseDatos acceso = new AccesoBaseDatos();
    
    public DAOTipoUnidad(){
        this.conexion = this.acceso.abrirConexion();
    }
    
    public TipoUnidadOptica buscarTipoUnidad(int idTipoUnidad){
        try{
            Statement sentencia = acceso.crearSentenciaBD(conexion);
            String query = "SELECT * FROM "+TABLA_TIPO_UNIDAD+" WHERE "
                    +COLUMNA_ID_TIPO+"='"+idTipoUnidad+"';";
            ResultSet resultado = sentencia.executeQuery(query);
            if(resultado.first()){
                String unidad = resultado.getString(2);
                TipoUnidadOptica tuo = new TipoUnidadOptica(idTipoUnidad, unidad);
                return tuo;
            }else{
                return null;
            }
        }catch(SQLException ex){
            return null;
        }
    }
    
    public ArrayList<TipoUnidadOptica> listarTiposUnidadOptica(){
        ArrayList<TipoUnidadOptica> tiposUnidadOptica = new ArrayList<>();
        try{
            Statement sentencia = acceso.crearSentenciaBD(conexion);
            String query = "SELECT "+COLUMNA_ID_TIPO+" FROM "+TABLA_TIPO_UNIDAD;
            ResultSet resultado = sentencia.executeQuery(query);
            while(resultado.next()){
                int idTipoUnidad = resultado.getInt(1);
                TipoUnidadOptica tuo = this.buscarTipoUnidad(idTipoUnidad);
                if(tuo!=null){
                    tiposUnidadOptica.add(tuo);
                }
            }
            return tiposUnidadOptica;
        }catch(SQLException ex){
            return tiposUnidadOptica;
        }
    }
}
